Incident Workflow Assignment

Create Following Group's

1.Email Group
2.Phone Group
3.Self Group
4.Walk_in Group

Create new state for Incident state field i.e. Waiting for Approval

Incident Workflow
         |
         |

Wait till the asigned to field should get value
         |
set state=Waiting for Approval
         |
         |
Go for the approval according to Contact Type

1.Email ------Email Group
2.Phone ------Group
3.Self --------Group
4.Walk_in ------Group

Any approval reject, it will go to run script activity where we should change the state=Canceled and then end the workflow
After Approval
         |
         |
         |
Another approval should get trigger to Incident's Caller's Manager
IF the it reject , it will roll back to again the previous group approval
After approval it will go further
         |
         |
         |
Change the state=In Progress
         |
         |
         |
After this there should be 2 parallel process.
1. if user canceled or closed the incident,then the workflow should end.
2. if user changed the priority then put comments as "Priority changed" and go to Activity of Caller's Manager Approval.
but this priority changes can be done 2 times, if user is trying to do it for 3 times, then change the state=resolved
and end the workflow.



Incident Form Field Task

1.Contact type field should have default value=Self Service
2.User should not change the contact type field value once he submit the form
3.User should not submit the form without categoy and subcategory field values